package com.dev.security.manager.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Sort;

import com.dev.security.manager.beans.Account;

/**
 * @author 潜行的青衣
 * @see
 */
public interface IAccountService {
	
	/**
	 * 添加
	 * @author 潜行的青衣
	 * @version
	 * @param account
	 */
	public boolean create(Account account);
	
	/**
	 * 更新
	 * @author 潜行的青衣
	 * @version
	 * @param account
	 */
	public boolean update(Account account);
	
	/**
	 * 校验账户是否存在
	 * @author 潜行的青衣
	 * @version
	 * @param account
	 * @return
	 */
	public boolean checkAccount(String account);
	
	/**
	 * 获取账户
	 * @author 潜行的青衣
	 * @version
	 * @param id
	 * @return
	 */
	public Account findAccount(String id);

	/**
	 * 条件查询分页+排序
	 * @author 潜行的青衣
	 * @version
	 * @param account
	 * @param page
	 * @param size
	 * @param sort
	 * @return
	 */
	public Page<Account> findPager(Account account, int page, int size, Sort sort);
	
	/**
	 * 删除账户 
	 * @author 潜行的青衣
	 * @version
	 * @param account_ids
	 */
	public void remove(String[] account_ids);

	/**
	 * 获取账户拥有的角色ID
	 * @author 潜行的青衣
	 * @version
	 * @param account_id
	 * @return
	 */
	public List<String> findRoleIds(String account_id);
	
	/**
	 * 分配角色
	 * @author 潜行的青衣
	 * @version
	 * @param account_id
	 * @param role_ids
	 */
	public void allocRoles(String account_id, String[] role_ids);
	
}
